package com.huakang.service.impl;

import com.huakang.entity.Medicion;
import com.huakang.entity.Search;
import com.huakang.mapper.MedicionMapper;
import com.huakang.service.MedicionService;

import com.huakang.utils.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;



/**
 * @Author{一只小呆瓜}
 * @Date2025/1/13 14:07
 */
@Service
@Transactional
public class MedicionServiceImpl implements MedicionService {
    @Autowired
    private MedicionMapper medicionMapper;

    @Override
    public List<Medicion> findAll() {
        return  medicionMapper.selectByExample(null);
    }

    @Override
    public boolean save(Medicion medicion) {
        return medicionMapper.insert(medicion)>0?true:false;
    }

    @Override
    public boolean update(Medicion medicion) {
        int i = medicionMapper.updateByPrimaryKey(medicion);
        return i>0?true:false;
    }

    @Override
    public boolean updatenum(Medicion medicion) {
        int i = medicionMapper.updateByPrimaryKey(medicion);
        return i>0?true:false;
    }

    @Override
    public List<Medicion> medSearch(Search search) {
        return medicionMapper.medSearch(search);
    }


    @Override
    public List<Medicion> findAll1() {
        return medicionMapper.selectByExample(null);
    }

    @Override
    public ResultVo updateStock(Integer medid, Integer mednum) {
        Medicion medicion = medicionMapper.selectByPrimaryKey(medid);
        if (medicion == null) {
            return ResultVo.fail("药品不存在");
        }

        if (medicion.getMdnum() < mednum) {
            return ResultVo.fail("库存不足");
        }

        medicion.setMdnum(medicion.getMdnum() - mednum);
        medicionMapper.updateByPrimaryKeySelective(medicion);
        return ResultVo.success("库存更新成功");
    }

    @Override
    public Medicion findMedid(Integer medid) {
        return medicionMapper.selectByPrimaryKey(medid);
    }
}
